package main

import (
	"fmt"
	"github.com/garyburd/redigo/redis"
)

/*
	通过go 向redis 写入数据和读取数据
 */
//定义全局redis连接池
var pool *redis.Pool

//启动程序时初始化redis连接池
func init() {
	pool = &redis.Pool{
		MaxIdle:     8,   //最大空闲连接数
		MaxActive:   0,   //表示和数据库的最大连接数，0表示没有限制
		IdleTimeout: 100, //最大空闲时间
		Dial: func() (redis.Conn, error) { //初始化连接
			return redis.Dial("tcp", "127.0.0.0:6379")
		},
	}
}


func main() {
	//1、连接redis
	conn, err := redis.Dial("tcp", "127.0.0.0:6379")
	if err != nil {
		fmt.Println("redis 连接失败", err)
		return
	}

	defer conn.Close()	//关闭

	//2、通过go向redis写入数据
	_, err = conn.Do("Set", "name", "Tom")
	if err != nil {
		fmt.Println("set err", err)
		return
	}

	//3、通过go 向redis读取数据
	data, err := redis.String(conn.Do("Get", "name"))
	if err != nil {
		fmt.Println("get err", err)
		return
	}

	//4、设置过期时间
	_, err = conn.Do("expire", "name", 100)

	fmt.Println("data=", data)
}





